Embodiments of the present application relate generally to distributed processing. Particularly, certain embodiments relate to allocating medical image data processing between a client and a server to display an image on the client.
The proliferation of computers in the modern era has been accompanied by a proliferation of computer networks. Computer networks include local area networks (LANs), wide area networks (WANs), wired networks, wireless networks, optical networks, and the like, or any combination thereof. Networks allow for communications between individual computers on the network.
In addition to sharing data, computer networks also facilitate the sharing of computer resources. In a resource-sharing network, the overall amount of resources available to an individual computer is enhanced. A resource-sharing network may also be called a distributed network, because the overall resources available on the network are distributed throughout the network.
The term distributed network is a broad term, and encompasses a wide variety of network models. For example, a distributed network may be a server-centric network, or a client-centric network. Server-centric networks may be designed so that certain critical resources are provided by a server. This may be advantageous when, for example, it is desirable to have relatively inexpensive clients or clients without much processing power. Client-centric networks, by contrast may rely more heavily on the client for the provision of certain critical resources.
One of the factors that may influence the design of a network is bandwidth. In distributed networks with relatively low bandwidth, it may be desirable to choose a design that reduces network traffic. For example, in a low bandwidth network, it may be desirable to provide a server-centric network. By contrast, in a distributed network with relatively high bandwidth may allow for increased architectural flexibility.
Distributed networks are known for synthetic model imaging. For example, U.S. Pat. No. 6,377,257, entitled “METHODS AND APPARATUS FOR DELIVERING 3D GRAPHICS IN A NETWORKED ENVIRONMENT,” (hereinafter “Borrel”), discusses a way of rendering synthetic models on both a client and a server. Borrel indicates that prior art schemes are known to operate by decomposing a synthetic model into its constituent parts (e.g. foreground objects and background), with a server rendering some of the parts and a client rendering the rest of the parts.
Additionally, synthetic modeling systems are known to adapt distributed imaging techniques based on feedback from the client. Borrel discusses a scheme for providing feedback from a client. Such feedback consists of error correction, user-defined feedback, and quality. The server must process the feedback, and then attempt to make adjustments in the distributive process to arrive at an efficient solution.
Solutions that are applicable for synthetic modeling, however, may prove less practical for medical imaging. Unlike modeling, medical images tend to be organic, or unitary. In other words, medical images may not readily be decomposed into constituent parts. For example, a synthetic model of a human spine may be generated and stored based on a variety of constituent parts including each vertebrae, each disk, surface texturing of each vertebrae, surface texturing of each disk, etc. By contrast, a medical image of a human spine (captured by an x-ray, for example) may include no such constituent components. Instead, a medical image of a human spine may be a unitary image that does not readily decompose into constituent components. Thus, decomposition solutions may not be practical for distributed imaging of medical images.
Additionally, adaptive techniques that rely on feedback may fail to efficiently allocate distributed resources at the outset of a processing task. In other words, feedback-reliant systems may eventually gravitate towards an efficient solution, but may inefficiently allocate resources at the beginning of a task. Moreover, feedback may be a crude measure for determining efficient allocation of resources. For example, a known type of feedback involves the use of time-stamping to measure how quickly a client performs a task, or a portion thereof. Such feedback information may vary based on a wide variety of factors, including network bandwidth, the client's central processing unit (“CPU”) speed and load, the client's available random access memory, the client's available video memory, the server's CPU speed and load, and the like. Thus, it may not be possible to efficiently determine which particular factor may be influencing feedback information.
In order to display a medical image, process medical image data that was acquired through use of a medical imaging system may be processed. Medical imaging systems, such as computed tomography (CT) scan systems may obtain image data in slices. A slice may be a two-dimensional (2D) slice. Although a slice may have a relatively small thickness in a third dimension, it may be conceptually convenient to refer to a slice as 2D. Multiple 2D slices may be obtained that correspond to varied cross-sections of a 3D volume of interest 2D image data slices may be processed into a 3D image data volume. One or more relatively large data files may store and/or process a 3D medical image data volume.
A clinician may not be able to view a 3D medical image data volume without further processing. A display, such as a flat-panel liquid crystal diode display or a cathode ray tube display, may only be able to display 2D images. Note, that 2D images may appear 3D to the viewer. Thus, to display a medical image on a display, 3D data may be processed to form 2D data.
A variety of techniques are known for processing 3D image data into 2D image data. These techniques include multi-planar reformatting (MPR), maximum (or minimum) intensity projection (MIP), and volume rendering (VR). In MPR processing, a 3D volume may be processed to obtain a 2D slice that may be different than the slices obtained by a medical imaging system. For example, an application incorporating MPR functionality may allow a user to rotate a displayed image at any angle and centered at any location within the volume. Thus, MPR allows a clinician to view the anatomy from any of a variety of positions and angles.
In MIP processing, a 3D volume may be processed to obtain a 2D slice that a viewer may perceive as being 3D. MIP processing may create a 2D image that is a combination of a stack of 2D slices. There are several ways to combine the pixels in each 2D slice to form a 2D image. For example, each pixel in a final 2D image may be the brightest or darkest pixel out of corresponding pixels in the stack of 2D slices. In another example, each pixel in the final 2D image may be an average of corresponding pixels in the stack of 2D slices.
VR processing is another way to display a 3D volume in 2D. VR processing renders the surface and/or interior of an object, making the surface of the object appear solid, transparent and/or translucent. Objects inside the interior of a volume of interest (such as organs, blood vessels, bones, etc.) may also be made to appear solid, transparent, and/or translucent.
Techniques for converting 3D data into a 2D displayable image, such as MPR, MIP, and VR, may be useful to clinicians. In addition, such techniques may also significantly reduce the size of data. A 2D displayable image may be a fraction of the size of a 3D data volume. However, techniques such as MPR, MIP, and VR may consume a substantial amount of processing resources. If processing resources are not readily available, imaging performance may become slow or degraded. Similarly, if a network has relatively low bandwidth, it may take a relatively long time to transfer 3D image data across the network. Moreover, other factors such as image quality of both 3D data and processed 2D data may impact the performance of an image display system.
Thus, there is a need for methods and systems that efficiently process medical image data on a distributed network. Additionally, there is a need for methods and systems that efficiently allocate medical image processing tasks throughout a distributed network. There is a need for methods and systems that provide flexibility and control to a user of a distributed medical imaging system.